function memberShoppingCart(){} memberShoppingCart.prototype = { removeTicketMember : function(proCodigo, carCodigo, message){ const element = document.getElementById(proCodigo); const itemData = element.getAttribute('data-ticket-item'); var thisObject = this; var modal = new Modal({ title: translate["shopping-cart-js-delete-confirmation"], body: '', confirm: function (){ ajaxLoader.ajaxStart(); $.ajax({ url: '/member-shopping-cart/remove-ticket-member-shopping-cart', method: 'post', data: {pro_codigo: proCodigo, car_codigo: carCodigo}, dataType: 'json', error: function(json){ ajaxLoader.ajaxStop(); var modal = new Modal({ title: json.title, body : '', buttonOK : false, cancelText: 'OK', }); modal.show(); }, success: function(json) { ajaxLoader.ajaxStop(); modal.hide(); if(!json.status){ var modalError = new Modal({ title: json.title, body : '', buttonOK : false, }); modalError.show(); }else{ gtmActions.removeFromCart([JSON.parse(itemData)]); $('#'+proCodigo).remove(); $('#cart_total').text(json.total_cart); thisObject.changeTotalBoxValues(json); location.reload(); } }, }); }, }); modal.show(); }, applyMember : function(productId, ticketId, eventId, sectorId, packageId, memberId = null, parking = false){ var thisObject = this; if(memberId == null){ var memberId = $("#ticketMember"+productId).val(); } const guestId = $('#ticketMember' + productId).find(':selected').attr('data-guest-id'); var parentTicketId = $('#ticketMember' + productId).find(':selected').attr('data-parent-ticket-id'); ajaxLoader.ajaxStart(); $.ajax({ url: '/member-shopping-cart/apply-member-to-ticket', data: {productId: productId, ticketId: ticketId, eventId: eventId, memberId: memberId, sectorId:sectorId, packageId:packageId, guestId: guestId, parentTicketId: parentTicketId, parking: parking}, method: 'post', dataType: 'json', success: function(json){ if(json.status){ ajaxLoader.ajaxStop(); // Mostrar mensagem antes de reload if( json.message && json.title ) { let modalParams = { title: json.title, body: '', }; if( typeof json.redirectUrl === 'string' ) { modalParams.confirm = function(){ window.location.href = json.redirectUrl }; modalParams.buttonCancel = true; modalParams.cancel = function(){ location.reload();}; } if(json.buttons != undefined){ if(json.buttons.ok != undefined){ modalParams.buttonOK = true; modalParams.okText = json.buttons.ok; modalParams.confirm = function(){window.location.href = json.buttons.okUrl}; } if(json.buttons.cancel != undefined){ modalParams.cancelText = json.buttons.cancel; } } const modal = new Modal(modalParams); modal.show(); thisObject.changeTotalBoxValues(json); thisObject.changeTicketvalues(json, productId); return; } thisObject.changeTotalBoxValues(json); thisObject.changeTicketvalues(json, productId); if(!parking){ location.reload(); }else{ window.location.href = '/shopping-cart'; } }else{ ajaxLoader.ajaxStop(); $('#ticketMember'+productId).val(''); var modal = new Modal({ title: json.title, body : '', buttonOK : false, }); modal.show(); } }, error: function(json){ ajaxLoader.ajaxStop(); window.location.reload(); } }); }, memberNotSelected : function() { $(".ticketMember").addClass("feedback"); }, cleanMemberTicket : function(productId, ticketId, eventId, sectorId){ var thisObject = this; var memberId = ''; ajaxLoader.ajaxStart(); $.ajax({ url: '/member-shopping-cart/apply-member-to-ticket', data: {productId: productId, ticketId: ticketId, eventId: eventId, memberId: memberId, sectorId:sectorId}, method: 'post', dataType: 'json', success: function(json){ if(json.status){ thisObject.changeTotalBoxValues(json); thisObject.changeTicketvalues(json, productId); location.reload(); }else{ ajaxLoader.ajaxStop(); var modal = new Modal({ title: json.title, body : '', buttonOK : false, }); modal.show(); } } }); }, cleanMemberTicketCat : function(productId, ticketId, eventId, sectorId, carCodigo, message = null){ var thisObject = this; var memberId = ''; var modalOne = new Modal({ title: translate["shopping-cart-js-delete-confirmation"], body: '', confirm: function (){ ajaxLoader.ajaxStart(); $.ajax({ url: '/member-shopping-cart/apply-member-to-ticket', data: {productId: productId, ticketId: ticketId, eventId: eventId, memberId: memberId, sectorId:sectorId}, carCodigo:carCodigo, method: 'post', dataType: 'json', success: function(json){ if(json.status){ $.ajax({ url: '/member-shopping-cart/remove-ticket-member-shopping-cart', method: 'post', data: {pro_codigo: productId, car_codigo: carCodigo}, dataType: 'json', error: function(json){ ajaxLoader.ajaxStop(); var modal = new Modal({ title: json.title, body : '', buttonOK : false, cancelText: 'OK', }); modal.show(); }, success: function(json) { ajaxLoader.ajaxStop(); modalOne.hide(); if(!json.status){ var modalError = new Modal({ title: json.title, body : '', buttonOK : false, }); modalError.show(); }else{ $('#'+productId).remove(); $('#cart_total').text(json.total_cart); thisObject.changeTotalBoxValues(json); location.reload(); } }, }); }else{ var modal = new Modal({ title: json.title, body : '', buttonOK : false, }); modal.show(); } } }); }, }); modalOne.show(); }, applyMemberDiscount : function(productId, cartId, eventId, callback){ var thisObject = this; var discountId = $("#ticketMemberDiscount"+productId).val(); if(discountId.charAt(0) == 'L'){ $('#modal').css('display', 'block'); $('.modal-backdrop').css('display', 'block'); $('#form-half-ticket').trigger("reset"); $('#modal').attr("data-pro", productId); $('#modal').attr("data-car", cartId); $('#modal').attr("data-eve", eventId); $('#modal').attr("data-dsc", discountId); if(callback) { callback(discountId); } else { $('#modal').modal('show'); } }else if(discountId.charAt(0) == 'M'){ $('#modal-multiclubes').css('display', 'block'); $('.modal-backdrop').css('display', 'block'); $('#form-multiclubes').trigger("reset"); $('#modal-multiclubes').attr("data-pro", productId); $('#modal-multiclubes').attr("data-car", cartId); $('#modal-multiclubes').attr("data-eve", eventId); $('#modal-multiclubes').attr("data-dsc", discountId); $('#modal-multiclubes').modal('show'); }else{ thisObject.insertDiscount(productId, cartId, discountId, eventId, null, null, null); } }, insertDiscount : function(proCodigo, carCodigo, dscCodigo, eveCodigo, rg, dob, nome, email){ var thisObject = this; ajaxLoader.ajaxStart(); $.ajax({ url: '/member-shopping-cart/insert-discount', data: {pro_codigo: proCodigo, car_codigo: carCodigo, dsc_codigo: dscCodigo, eve_codigo: eveCodigo, rg: rg, dob: dob, nome: nome, email: email}, method: 'post', dataType: 'json', success: function(json){ if(json.status){ thisObject.changeTotalBoxValues(json); thisObject.changeTicketvalues(json, proCodigo); $('#modal').modal('hide'); if(json.message != undefined){ ajaxLoader.ajaxStop(); var modalParams = { title: json.title, body : '', buttonOK : false, cancelText: 'OK', dismissButton : false }; if(json.buttons != undefined){ if(json.buttons.ok != undefined){ modalParams.buttonOK = true; modalParams.okText = json.buttons.ok; modalParams.confirm = 'reload'; } if(json.buttons.cancel != undefined){ modalParams.cancelText = json.buttons.cancel; modalParams.cancel = function(){ $('#ticketMemberDiscount'+proCodigo).parents('tr').find('i.fa.fa-ban').click(); }; } } var modal = new Modal(modalParams); modal.show(); } else{ location.reload(); } }else{ ajaxLoader.ajaxStop(); var modalParams = { title: json.title, body : '', buttonOK : false, cancelText: 'OK', dismissButton : false, cancel: function(){ $('#ticketMemberDiscount'+proCodigo).val('T-2'); } }; if(json.buttons != undefined){ if(json.buttons.ok != undefined){ modalParams.buttonOK = true; modalParams.okText = json.buttons.ok; modalParams.confirm = function(){window.location.href = json.buttons.okUrl}; } if(json.buttons.cancel != undefined){ modalParams.cancelText = json.buttons.cancel; } } var modal = new Modal(modalParams); modal.show(); } } }); }, changeTotalBoxValues : function(jsonData) { $('.subtotal').html(jsonData.subtotal); $('.discount').html(' - '+jsonData.discount); $('.order_tax').html(' + ' + jsonData.order_tax); $('.fee_tax').html(jsonData.fee_tax); $('.total').html(jsonData.total); }, changeTicketvalues : function(jsonData, proCodigo){ $('#discount_' + proCodigo).html( jsonData.product_discount ); $('#convenience_fee' + proCodigo).html(jsonData.product_convenience_fee); $('#total_' + proCodigo).html(jsonData.product_price); }, halfTicketMember : function(){ var thisObject = this; $('#modal').modal('hide'); thisObject.insertDiscount($('#modal').data('pro'), $('#modal').data('car'), $('#modal').attr('data-dsc'), $('#modal').data('eve'), $('#user_rg').val(),$('#user_dob').val(),$('#user_nome').val()); }, multiclubesTypeTicket : function(){ $('#modal-multiclubes').modal('hide'); this.insertDiscount($('#modal-multiclubes').attr('data-pro'), $('#modal-multiclubes').data('car'), $('#modal-multiclubes').data('dsc'), $('#modal-multiclubes').data('eve'), $('#title_code').val()); }, payment : function(){ window.location.href = '/policy'; }, orderGenerate : function(carCodigo, totalShoppingCart){ ajaxLoader.ajaxStart(); const element = document.getElementById("shopping-cart"); const value = document.getElementById("total"); const itemData = element.getAttribute('data-cart'); $.ajax({ url: '/shopping-cart/order-generate', data: {car_codigo: carCodigo, total_shoppingcart: totalShoppingCart}, method: 'post', dataType: 'json', error: function(){ var modal = new Modal({ title: 'Erro', body : '', buttonOK : false, }); modal.show(); }, success: function(json){ if(!json.status){ ajaxLoader.ajaxStop(); if(json.message == undefined){ var message = translate["shopping-cart-js-order-generate-error"]; }else{ var message = json.message; } var modal = new Modal({ title: json.title, body : '', buttonOK : false, cancel: function(){ location.reload(); } }); modal.show(); }else{ gtmActions.beginCheckout(JSON.parse(itemData), value.innerText.replace("R$ ", "").replace(".", "").replace(",", ".")); setTimeout(function() { window.location.replace(json.url); }, 500); } } }); }, expireCart: function (){ ajaxLoader.ajaxStart(); setTimeout(function(){ $.ajax({ url: '/member-shopping-cart/expire-cart', dataType: 'json', method: 'post', success: function(json){ ajaxLoader.ajaxStop(); if(json.status){ window.location.href = json.url; }else{ window.location.reload(); } } }); }, 3000); }, ticketAddDocument : function(){ if(!$('#modal-documento-ingresso').find('#ticket-document-check').prop('checked')){ alert('Você precisa confirmar que os dados são verdadeiros.'); return; } ajaxLoader.ajaxStart(); var ticketId = $('#modal-documento-ingresso').find('#ticket-document-ticket-id').val(); var name = $('#modal-documento-ingresso').find('#ticket-document-name').val(); var document = $('#modal-documento-ingresso').find('#ticket-document-document').val(); var email = $('#modal-documento-ingresso').find('#ticket-document-email').val(); var phone = $('#modal-documento-ingresso').find('#ticket-document-phone').val(); var dob = $('#modal-documento-ingresso').find('#ticket-document-dob').val(); $.ajax({ url: '/member-shopping-cart/ticket-add-document', data: {ticketId: ticketId, name: name, document: document, email: email, phone: phone, dob: dob}, dataType: 'json', method: 'post', success: function(json){ ajaxLoader.ajaxStop(); if(json.status){ $('#ticket-'+ticketId+'-document-name').text(name); $('#ticket-'+ticketId+'-document-name').attr('onclick', "$('#modal-documento-ingresso').find('#ticket-document-ticket-id').val("+ticketId+");" + "$('#modal-documento-ingresso').find('#ticket-document-name').val('"+name+"');" + "$('#modal-documento-ingresso').find('#ticket-document-document').val('"+document+"');" + "$('#modal-documento-ingresso').find('#ticket-document-email').val('"+email+"');" + "$('#modal-documento-ingresso').find('#ticket-document-phone').val('"+phone+"');" + "$('#modal-documento-ingresso').find('#ticket-document-dob').val('"+dob+"');" + "$('#modal-documento-ingresso').modal()" ); $('#modal-documento-ingresso').modal('hide'); }else{ var modal = new Modal({ title: "Ops!!", body : '', buttonOK : false, }); modal.show(); } } }); }, applyCoupon : function(eveCodigo){ var cupHash = $('#cupHash').val(); ajaxLoader.ajaxStart(); $.ajax({ url: '/member-shopping-cart/apply-coupon', data: {cup_hash: cupHash, eve_codigo: eveCodigo}, dataType: 'json', method: 'post', success: function(json){ ajaxLoader.ajaxStop(); if(json.status){ location.reload(); }else{ if(json.show_document_modal){ $('#modal').css('display', 'block'); $('.modal-backdrop').css('display', 'block'); $('#form-half-ticket').trigger("reset"); $('#modal').attr("data-pro", json.product_id); $('#modal').attr("data-car", json.cart_id); $('#modal').attr("data-eve", eveCodigo); $('#modal').attr("data-dsc", 'L-' + json.discount_id); $('#modal').attr("data-cup", json.coupon_id); $('#modal').find('.titulo-interna').text('CADASTRO'); $('#modal').modal('show'); }else{ var modal = new Modal({ title: json.title, body : '', buttonOK : false, }); modal.show() } } } }); } }; var memberShoppingCart = new memberShoppingCart();